package com.duobaoyu.dby.supply.api.service;

import com.duobaoyu.dby.supply.common.biz.remote.dto.refund.*;
import com.duobaoyu.dby.supply.common.biz.remote.to.refund.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * @author yw
 * @description
 * @date 2023/9/27 10:47
 */
public interface AfterSaleBizService {

	/**
	 * 批量查询商品售后权益
	 *
	 * @param afterSaleAttributes
	 * @return
	 */
	AfterSaleAttributesTO queryAfterSaleAttributes(AfterSaleAttributesDTO afterSaleAttributes);

	/**
	 * 售后申请
	 *
	 * @param afterSaleApply
	 * @return
	 */
	ApplyAfterSaleTO createAfterSale(AfterSaleApplyDTO afterSaleApply);

	/**
	 * 查询客户寄回地址
	 *
	 * @param afterSaleAddress
	 * @return
	 */
	AfterSaleAddressTO queryAfterSaleAddress(AfterSaleAddressDTO afterSaleAddress);

	/**
	 * 填写运单信息
	 *
	 * @param afterSaleWayBill
	 * @return
	 */
	AfterSaleWayBillTO createAfterSaleWayBill(AfterSaleWayBillDTO afterSaleWayBill);

	/**
	 * 取消售后申请
	 *
	 * @param cancelAfterSaleApply
	 * @return
	 */
	CancelAfterSaleApplyTO cancelAfterSale(CancelAfterSaleDTO cancelAfterSaleApply);

	/**
	 * 确认售后服务
	 *
	 * @param confirmAfterSale
	 * @return
	 */
	ConfirmAfterSaleTO confirmAfterSale(ConfirmAfterSaleDTO confirmAfterSale);

	/**
	 * 查询售后物流公司（自行寄件支持物流公司）
	 *
	 * @param afterSaleLogistics
	 * @return
	 */
	AfterSaleLogisticsTO queryAfterSaleLogistics(AfterSaleLogisticsDTO afterSaleLogistics);

	/**
	 * 售后回查接口
	 *
	 * @param afterSaleQuery
	 * @return
	 */
	ApplyAfterSaleDetailTO queryAfterSale(AfterSaleQueryDTO afterSaleQuery);

	/**
	 * 上传售后凭证
	 *
	 * @param orderSn
	 * @param file
	 * @return
	 */
	String uploadAfterSaleVoucher(String orderSn, MultipartFile file);
}
